/**
  ETFRoot project, Anyang Normal University && IMP-CAS
  \class ETFPDC
  \brief for Proton DCs, constructed in Japan and reused by BUAA. NOTE that this
  serves as an abstract base class for class ETFPDCL and ETFPDCR. So DO NOT try
  instantiating it.
  \author SUN Yazhou, asia.rabbit@163.com
  \since 2021-11-09
  \date 2021-11-18 last modified
  \attention
  changelog
  <table>
  <tr>  <th>Date         <th>Author      <th>Description                   </tr>
  <tr>  <td>2021-11-09   <td>Asia Sun    <td>file created                  </tr>
  </table>

  \copyright Copyright (c) 2021 Anyang Normal U. && IMP-CAS with LGPLv3 LICENSE
*/

#ifndef ETFPDC_h
#define ETFPDC_h

#include "ETFDCTa.h"

class ETFPDC : public ETFDCTa{
public:
  ETFPDC(){}
  ETFPDC(const char *name);
  virtual ~ETFPDC() = 0;

  virtual void Assign(const ETFHPTDCChannel *ch); ///< add the data channel to the detector
  virtual void ConstructGraph(); ///< add sigle wires to fGDumb
  /// \retval false: if obtained drift time out of range
  /// NOTE that if trk has non-FitStatus::kUNFITTED FitStatus, this method
  /// would do nothing, as drift distance only changes with drift time,
  /// whose changes would ensure fFitStatus be set to FitStatus::kUNFITTED
  virtual bool SetDriftDistance(ETFVTrack *trk);

  ClassDef(ETFPDC, 1);
};

#endif
